Methods and apparatus to monitor shoppers in a retail environment

ABSTRACT

Methods and apparatus to monitor shoppers in a retail environment are disclosed herein. In a disclosed example method involves collecting location information indicative of a measured path of travel of a person through a monitored environment. The example method also involves collecting person detection event information associated with a plurality of zones in the monitored environment. The person detection event information is indicative of detections of the person in each of the zones. In addition, the example method involves determining an adjusted path of travel of the person through the monitored environment based on the location information indicative of the measured path of travel and the person detection event information.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to consumer monitoring and,more particularly, to methods and apparatus to monitor shoppers in aretail environment.

BACKGROUND

Retail establishments and product manufacturers are often interested inthe shopping activities, behaviors, and/or habits of people in a retailenvironment. Consumer activity related to shopping can be used tocorrelate product sales with particular shopping behaviors and/or toimprove placements of products, advertisements, and/or otherproduct-related information in a retail environment. Known techniquesfor monitoring consumer activities in retail establishments includeconducting surveys, counting patrons, and/or conducting visualinspections of shoppers or patrons in the retail establishments.

Acquiring information related to shopping activities, behaviors, and/orhabits of people in a retail environment enables retail establishmentsto arrange their store and product layouts in a manner that is mostconducive to maximizing sales of such products by positively influencingshoppers. Acquiring such information also enables product manufacturersto design product packaging that influences shoppers exhibiting certainbehaviors or shopping patterns and/or to design different productpackaging to target different shopper behaviors, patterns, or habitsassociated with different geographic areas. Advertisers can also benefitfrom metering shopping activities, behaviors, and/or habits of people ina retail environment by using such information to create more effectiveadvertisements and/or position advertisements in more opportunelocations within different retail establishments. In addition,advertisers can assess which advertisements are more effective thanothers.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a plan view of an example retail establishment havingactual and measured shopper paths of travel overlaid thereon.

FIG. 2 depicts an actual shopper path of travel shown in associationwith a measured shopper path of travel and an adjusted shopper path oftravel.

FIG. 3 depicts a system that can be installed in a retail establishmentto generate path of travel information and analyze shopper activity inthe retail establishment.

FIG. 4 depicts a data structure that can be used to store path of travelinformation associated with a shopper in a retail establishment.

FIG. 5 depicts a data structure that can be used to associate zones in aretail establishment with respective location boundaries in the retailestablishment.

FIG. 6 is an example location monitoring system that may be used toimplement a location detection system to track shoppers' paths of travelin a retail establishment.

FIG. 7 is a block diagram of an example tag that can be worn or carriedby a shopper to generate path of travel information as the shopper movesthrough a retail establishment.

FIG. 8 is a block diagram of a data collector and processor that can beused to collect, process, and analyze measured path of travelinformation and person detection event information associated withshoppers in a retail establishment.

FIG. 9 is a block diagram of an example apparatus that can be used toanalyze measured shopper path of travel information to generate adjustedpath of travel information.

FIG. 10 is a flow diagram representative of machine readableinstructions that can be executed by the tag of FIGS. 1 and 7 to emitchirps for generating measured path of travel information as the shoppermoves through the retail establishment of FIG. 1.

FIG. 11 is a flow diagram representative of machine readableinstructions that can be executed by the data collector and processor ofFIGS. 1 and 8 to collect measured path of travel information.

FIG. 12 is a flow diagram representative of machine readableinstructions that can be executed to cause the tag of FIGS. 1 and 7 toemit chirps for generating measured path of travel information as theshopper moves through the retail establishment of FIG. 1.

FIG. 13 depicts a flow diagram representative of machine readableinstructions that can be executed by the shopper path of travelinference apparatus 312 of FIGS. 3 and 9 to process the measured path oftravel information to generate adjusted path of travel information.

FIG. 14 depicts another flow diagram representative of machine readableinstructions that can be executed by the shopper path of travelinference apparatus 312 of FIGS. 3 and 9 to process the measured path oftravel information to generate adjusted path of travel information.

FIG. 15 is a block diagram of an example processor system that may beused to execute the example machine readable instructions of FIGS.10-14.

DETAILED DESCRIPTION

Although the following discloses example methods and apparatusincluding, among other components, software executed on hardware, itshould be noted that such methods and apparatus are merely illustrativeand should not be considered as limiting. For example, it iscontemplated that any or all of these hardware and software componentscould be embodied exclusively in hardware, exclusively in software, orin any combination of hardware and software. Accordingly, while thefollowing describes example methods, systems, and apparatus, personshaving ordinary skill in the art will readily appreciate that theexamples provided are not the only way to implement such methods,systems, and apparatus.

The example methods and apparatus described herein may be implemented bya consumer metering entity, by a retail business, or by any other entityinterested in collecting and/or analyzing information to monitor personsin a monitored environment. For example, the example methods andapparatus may be used to monitor shopper traffic. The example methodsand apparatus can be used to determine shopper locations associated withshopper traffic and the times at which locations of those shoppers aredetected. In addition, paths of travel of different shoppers can bedetermined. The example methods and apparatus may be used to helpmarketing and media professionals better understand the amount ofshopper traffic and shopper traffic trends in retail establishments.Such information may be used to determine how to reach and influenceshoppers that buy goods in retail establishments. For example, bymonitoring in-store shopper quantities and traffic, the example methodsand apparatus described herein can be used to determine when shoppertraffic is heaviest and lightest and to determine locations mostfrequented in a retail establishment.

In some example implementations, the example methods and apparatus canbe implemented using less expensive means than other known path oftravel monitoring systems yet achieving comparably similar accuracy asthose systems. In general, an example implementation involves usingpeople detection devices located throughout a retail establishment inconnection with a location tracking system in the retail establishment.The people detection devices collect shopper detection event data (orperson detection event data) in different aisles or zones of the retailestablishment indicative of when shoppers move proximate to the peopledetection devices, while tracking beacons (access points, chirpreceivers, signal receivers, etc.) associated with the location trackingsystem are located throughout the store to collect measured path oftravel information associated with respective shoppers. The shopperdetection event data collected using the people detection devices isused in connection with the measured path of travel information toincrease the accuracy of the path of travel information by adjusting orcorrecting erroneous or inaccurate location data in the measured path oftravel information. In some example implementations, the path of travelinformation can then be used to identify products, advertisements,and/or other media or information to which shoppers were exposed alongthose path(s).

In general, location tracking systems are relatively more expensive thanpeople detection devices. Thus, by using people detection devices inconnection with a location tracking system, the location tracking systemcan be installed using less tracking beacons located throughout a storethan would otherwise be needed. Although, the location tracking systemwould then generate less granular path of travel information than couldotherwise be achieved with more tracking beacons, the cost of thelocation tracking system can be substantially reduced. To subsequentlyincrease the accuracy of the measured path of travel information, theshopper detection event data from the people detection devices is usedto confirm the aisle or zone of a retail establishment in which ashopper was located whenever a suspect location datum generated by thelocation tracking system is detected.

Turning to FIG. 1, a plan view of an example retail establishment 100 isshown having an actual shopper path of travel 102 and a measured shopperpath of travel 104 overlaid thereon. In the illustrated example, theretail establishment 100 is a grocery store. However, the examplemethods and apparatus described herein can be used to monitor shoppers'paths of travel in other monitored environments such as other types ofretail establishments (e.g., department stores, clothing stores,specialty stores, hardware stores, etc.) or commercial establishments(e.g., entertainment venues, amusement parks, sports arenas/stadiums,etc.). The retail establishment 100 is shown as having aisles A-Crepresentative of different zones of the retail establishment. A zone isan area of a monitored environment accessible by people who are to bemonitored to generate traffic counts and paths of travel of thosepeople. In the illustrated example, the boundaries of a zone may relateto product layout throughout the retail establishment, furniture layout,and/or other boundary-creating features (e.g., an outdoor garden andlawn area). In some example implementations, zones are created based onthe types of products that are sold in particular areas of a retailestablishment.

The actual shopper path of travel 102 indicates the actual path traveledby a shopper through aisles 1 and 2 of the retail establishment 100, andthe measured shopper path of travel 104 indicates the path of traveldata collected by a location tracking system having location detectiondevices 106 a-c located throughout the retail establishment 100. In theillustrated example, the location detection devices 106 a-c areimplemented using wireless radio frequency (RF) communication units. Inthe illustrated example, the data collected by the location trackingsystem indicates that the shopper exited aisle A and entered into aisleB. However, while in aisle B the shopper was measured as having detouredmomentarily back into aisle A and also subsequently detoured momentarilyinto aisle C. Although these erroneous excursions or deviations could beremedied by increasing the number of tracking beacons throughout theretail establishment 100, the example methods and apparatus describedherein can be used to detect and correct or adjust the erroneousexcursions or deviations based on shopper detection event data generatedusing people detectors 108 a-h located throughout the retailestablishment 100. Using shopper detection event data generated usingthe people detectors 108 a-h facilitates generating relatively moreaccurate path of travel information to more accurately represent theactual shopper path of travel 102. In the illustrated example, thepeople detectors 108 a-h are located at predetermined entrances andexits of respective zones (e.g., the aisles A-C) and are configured todetect when shoppers pass through the entrances/exits. In some exampleimplementations, the people detectors 108 a-h can also be implemented todetect the direction in which a shopper moves to indicate whether theshopper has entered or exited a zone when the shopper is detected.

Turning briefly to FIG. 2, an adjusted (or processed) path of travel 202generated based on the measured path of travel 104 and shopper detectionevent data is shown relative to the actual path of travel 102 and themeasured path of travel 104. As shown, the actual shopper path of travel102 is relatively more similar to the adjusted shopper path of travel202 than to the measured shopper path of travel 104.

Returning to FIG. 1, to generate the measured shopper path of travel104, a mobile tag 110 is provided for mounting on shopping carts such asthe shopping cart 112. Additionally or alternatively, tags that aresubstantially similar or identical to the tag 110 can be mounted toshopping baskets or can be issued to shoppers when they enter the retailestablishment 100 and worn or carried by those shoppers as they movethrough the retail establishment 100. In addition, the retailestablishment 100 is provided with a data collector and processor 114that is used to collect and process measured path of travel information.In some example implementations, the data collector and processor 114can be communicatively coupled to a server at a data collection facility(not shown) via a telephone line, a broadband internet connection, awireless cellular connection, and/or any other suitable communicationinterface. In such a configuration, the data collector and processor 114can communicate measured path of travel information, shopper detectionevent data, and/or adjusted path of travel information to the datacollection facility for subsequent analyses. In some exampleimplementations, the data collector and processor 114 can collect andanalyze the measured shopper path of travel 104 to generate the adjustedshopper path of travel 202, while in other example implementations, thedata collector and processor 114 can communicate the measured shopperpath of travel 104 along with shopper detection event data to the datacollection facility, and the data collection facility can analyze themeasured shopper path of travel 104 to generate the adjusted shopperpath of travel 202.

Each mobile tag (e.g., the tag 110) is encoded with a unique tagidentifier and periodically emits a chirp or any other type of signalcarrying information or data representative of its unique tag identifieras it is moved through the retail establishment 100. The locationdetection devices 106 a-c detect the chirps or signals from the mobiletags and communicate signal properties of the chirps and/or dataembedded in the chirps to the data collector and processor 114. Thus,the data collector and processor 114 can use the signal propertiesand/or the chirp-embedded data to determine the different locations ofthe tag 110 and store the location information in association with theunique tag identifier of the tag 110 to represent the measured path oftravel 104.

During an analysis and correction process, location data forming themeasured shopper path of travel 104 and collected at times t0-t8 (FIGS.1 and 2) is analyzed to determine whether any path segments of themeasured path of travel 104 have suspect excursions, deviations, ormovements between different zones. When such a suspect excursion,deviation, or movement is detected, the location data having the erroror inaccuracy is changed, adjusted or otherwise corrected to provide amore accurate representation of the actual shopper path of travel 102.An example manner of detecting such suspect excursions, deviations, ormovements involves identifying the times at which a shopper traversed apredetermined entrance and a predetermined exit of a zone (e.g., anaisle) and determining whether any location points temporally collectedbetween the entrance and exit events indicate a location other than thezone that was entered or exited through the predetermined entrance andpredetermined exit.

To detect an entrance/exit event to/from a zone, a match or substantialmatch is found between a timestamp of a shopper detection event and atimestamp of a collected location point along the measured path oftravel 104. Referring to the location collection time t4 of FIG. 1, asubstantial match within a threshold time or time difference between atimestamp of a shopper detection event generated using the peopledetector 108 e and a timestamp of a location point collected using oneor more of the location detection devices 106 a-c at time t4 indicatesthat the shopper was in aisle B. A similar analysis for time t8 inconnection with a shopper detection event generated using the peopledetector 108 f also shows that the shopper was in aisle B at t8. Thethreshold time range or time difference defining when a substantialmatch between timestamps is confirmed can be selected based onexperimental trials used to determine a maximum or typical temporalmisalignment between the time the tag 110 emits a chirp for locationdetection purposes and the time that a people detector 108 a-h detectsthe person associated with the tag 110.

To increase the probability of finding a match in timestamps between aparticular collected location datum and a person detection event, afeedback technique can be implemented to increase the chirp rate (orsignal emission rate) of the tag 110 when it approaches the locations ofthe people detectors 108 a-h. In some example implementations, afeedback technique may involve providing the tag 110 with an infraredsensor and implementing the people detectors 108 a-h using infraredtransmitters and receivers. In such example implementations, the peopledetectors 108 a-h are configured to generate a shopper detection eventwhen a shopper breaks the infrared beam transmitted by the infraredtransmitter toward the infrared receiver. To implement a feedbacktechnique to increase the chirp rate (or signal emission rate) of thetag 110, when the tag 110 is in the vicinity of any of the peopledetectors 108 a-h, it detects the infrared light emitted by the infraredtransmitters of the people detectors 108 a-h to which it is proximate.In particular, the tag 110 can be configured to increase its chirp rate(or signal emission rate) to emit chirps (or signals) more frequentlywhen it detects infrared light from one (or more) of the peopledetectors 108 a-h. In this manner, relatively more location data andcorresponding timestamps can be generated for the tag 110 when the tag110 is in the vicinity of the people detectors 108 a-h. Havingrelatively more location data and corresponding timestamps when the tag110 is near the people detectors 108 a-h increases the probability offinding a match between a timestamp of a shopper detection event and atimestamp of a collected location datum to confirm that a shopper was ina particular zone (e.g., one of the aisles A-C) of the retailestablishment 100.

In other example implementations, a feedback technique to increase thetag chirp rate may be implemented by providing the tag 110 with datareception capabilities in which the tag 110 can be instructed by, forexample, the data collector and processor 114, to increase its chirprate when the data collector and processor 114 determines that the tag110 is near or proximate to any of the people detectors 108 a-h.Alternatively, the data collector and processor 114 can transmit chirptriggers at a relatively higher rate than the rate at which the tag 110normally emits chirps. In this manner, the chirp triggers can cause thetag 110 to emit chirps at higher rates. For example, with each chirpreceived by the location detection devices 106 a-c during a normal chirprate of the tag 110, the data collector and processor 114 can determine,in real-time or substantially real-time, a location of the tag 110. Whenthe data collector and processor 114 determines that a location of thetag 110 is within a threshold distance of one of the people detectors108 a-h, the data collector and processor 114 can communicate via thelocation detection devices 106 a-c, a higher chirp rate configurationinstruction to configure the tag 110 to emit chirps at a higher rate orcan emit several chirp trigger signals to the tag 110 at a high ratewhile the tag 110 is within the vicinity of any of the people detectors108 a-h.

To provide additional information associated with detections of shoppersas they walk by or move proximate to the people detectors 108 a-h, thepeople detectors 108 a-h can, in some example implementations, beprovided with travel direction detectors to determine the direction inwhich shoppers are traveling when they move past or proximate to thepeople detectors 108 a-h. In such a configuration, each person detectionevent entry can store a detected direction in association with atimestamp of when the shopper detection event occurred. The directioninformation can then be used to correct location data forming measuredshopper paths of travel (e.g., the measured shopper path of travel 104)by using the direction information to determine whether a detectedshopper was entering or exiting a particular zone.

Turning to FIG. 3, an example system 300 can be installed in the retailestablishment 100 of FIG. 1 to generate path of travel information andanalyze shopper activity in the retail establishment 100. The examplesystem 300 is shown in connection with a data flow that can be used tocollect measured shopper path of travel information and shopperdetection event data to generate more accurate shopper path of travelinformation. The example system 300 includes a location detection system302 to generate measured path of travel information 304, which can beused to represent, for example, the measured shopper path of travel 104of FIG. 1. The location detection system 302 can be implemented usingthe location detection devices 106 a-c of FIG. 1 in combination with thedata collector and processor 114. The example system 300 also includesthe people detectors 108 a-h of FIG. 1, each of which generatesrespective shopper detection event information 306 a-h.

In the illustrated example, the example system 300 is provided with apath of travel information store 308 that is used to store the measuredpath of travel information 304 and a separate shopper event informationstore 310, which used to store the shopper detection event information306 a-h. The example system 300 is also provided with a shopper path oftravel inference apparatus 312 to analyze the measured path of travelinformation 304 in connection with the shopper event information 306 a-hto improve the accuracy of the measured path of travel information 304by generating, for example, the adjusted shopper path of travel 202shown in FIG. 2. The relatively more accurate adjusted shopper path oftravel information reduces or eliminates the measured excursions ordeviations into aisles A and C shown in FIG. 1 and provides a measuredshopper path of travel that is relatively more representative of theactual shopper path of travel 102. An example apparatus that can be usedto implement the shopper path of travel inference apparatus 312 isdescribed below in connection with FIG. 9.

FIG. 4 depicts a travel path data structure 400 that can be used tostore path of travel information associated with a shopper in a retailestablishment (e.g., the retail establishment 100 of FIG. 1). The travelpath data structure 400 may be used to store the measured path of travelinformation 304 of FIG. 3 in the path of travel information store 308 ofFIG. 3. In the illustrated example of FIG. 4, the travel path datastructure 400 includes a tag identification column 402, a timestampcolumn 404, a measured path of travel column 406, and an adjusted pathof travel column 408. The tag identification column 402 storesidentifiers uniquely associated with different tags (e.g., the tag 110of FIG. 1) in the retail establishment 100. The timestamp column 404stores timestamps in association with each respectively collectedlocation datum forming a respective path of travel. Each timestamp entryindicates the time at which one of the location detection devices 106a-c detected a tag-emitted chirp that was used to determine a respectivelocation datum corresponding to that timestamp entry and stored in themeasured path of travel column 406. In the illustrated example, theadjusted path of travel column 408 stores location data modified to bemore representative of the actual path of travel of a shopper. In theillustrated example, the originally collected measured path of traveldata is preserved in the measured path of travel column 406. However, inother example implementations, modifications to the measured locationdatum can be made to the measured path of travel data without storingseparate processed path of travel data.

FIG. 5 depicts a zone boundary data structure 500 that can be used toassociate zones (e.g., the aisles A-C of FIG. 1) in the retailestablishment 100 of FIG. 1 with respective location boundaries in theretail establishment 100. The zone boundary data structure 500 includesa location boundaries column 502 and a zone column 504. The locationboundaries column 502 stores location boundary entries, each of whichdefines a perimeter demarking a corresponding zone identified by a zoneidentifier in the zone column 504. In the illustrated examples describedherein, the zone boundary data structure 500 can be used to determinewhen a measured shopper path of travel (e.g., the measured shopper pathof travel 104 (FIGS. 1 and 2)) indicates that a corresponding shoppermoved between different zones (e.g., different ones of the aisles A-C ofFIG. 1). For example, if the location entry L4(M) in the measured pathof travel column 406 of FIG. 4 indicates that a shopper was in aisle Bbased on the location boundary definition LB2 in the location boundariescolumn 502 of FIG. 5 and the location entry L5(M) in the measured pathof travel column 406 indicates that the shopper was in aisle A based onthe location boundary definition LB1 in the location boundaries column502, this inter-zone transition can be flagged as requiring furtheranalysis to confirm and/or correct its accuracy or validity. Forexample, the inter-zone transition can be analyzed by using shopperdetection event data collected using the people detectors 108d and 108 eto determine which of the aisles A and B the shopper was last detectedas exiting and/or entering.

FIG. 6 is an example location monitoring system 600 that may be used toimplement the location detection system including the location detectiondevices 106 a-c located throughout the retail establishment 100 ofFIG. 1. The monitoring system 600 may be configured to work with theexample tag 110 (FIG. 1) to generate location information indicative ofpaths of travel associated with shoppers' movements through the retailestablishment 100 of FIG. 1. The monitoring system 600 or anotherprocessing system (e.g., the data collector and processor 114 or aserver at a central facility) may then use the location information todetermine the path(s) walked by shoppers.

In the illustrated example of FIG. 6, the monitoring system 600 includestwo base units 602 a and 602 b communicatively coupled to a datainterface unit 604 via a network hub 606. The base units 602 a-b arecommunicatively coupled to a plurality of satellite units 608, which maybe used to implement the location detection devices 106 a-c of FIG. 1.The monitoring system 600 may be implemented using ultrasoundtechnologies, any other audio or acoustic technology, or any suitable RFtechnology. In the illustrated examples described herein, the tag 110 isprovided with a signal emitter to emit chirps, and the locationdetection devices 106 a-c are configured to receive chirps from the tag110. In such example implementations, the satellite units 608 of FIG. 6can be provided with microphones or transducers that enable the units602 a-b and 608 to detect tag ID signals emitted by the tag 110. Inalternative example implementations that may be used to implement themethods and apparatus described herein, the tag 110 may be provided witha sensor and the base sensor units 602 a-b and the satellites sensorunits 608 may include audio emitters or RF transmitters to emit ortransmit chirps detectable by the tag 110. Each of the base units 602a-b may have a plurality of data acquisition or transmission channels.Each of the base sensor units 602 a-b may be coupled to data acquisitionchannel zero, and each of the satellite units 608 may be coupled to arespective subsequently numbered data acquisition channel of the baseunits 602 a-b.

The base units 602 a-b may be communicatively coupled to the datainterface unit 604 using any suitable networking standard (e.g.,Ethernet, Token Ring, etc.). In some example implementations, the datainterface unit 604 may be implemented using the data collector andprocessor 114 of FIG. 1. Although the base units 602 a-b are shown asbeing coupled via wires to the data interface unit 604, the base units602 a-b may alternatively be coupled to the data interface unit 604and/or the network hub 606 via wireless interfaces. In alternativeexample implementations, the base units 602 a-b may be communicativelycoupled to a server at a central facility using a wired or wirelesscommunication protocol. Each of the base units 602 a-b may be assigned aunique internet protocol (IP) address that enables each of the baseunits 602 a-b to communicate with the data interface unit 604. The datainterface unit 604 may store the information received from the baseunits 602 a-b in a database and/or communicate the information to, forexample, the central facility.

The base units 602 a-b may be powered by an alternating current (AC)source (e.g., a wall outlet) or a direct current (DC) source (e.g., anAC-DC converter plugged into a wall outlet). The satellite units 608 maybe powered by the base units 602 a-b. Specifically, a cable used tocouple a satellite unit 608 to one of the base units 602 a-b may includea data communication link that is coupled to one of the data acquisitionchannels and a power link that is coupled to a power supply of the oneof the base units 602 a-b.

The units 602 a-b and 608 may be placed throughout the monitoredenvironment 100 as described above in connection with the locationdetection devices 106 a-c and each may be assigned a location ID or aunique ID corresponding to a location and/or a zone in which it islocated.

Although the example system 600 is described as being able to be used toimplement the location detection devices 106 a-c of FIG. 1, the locationdetection system including the location detection devices 106 a-c usedto generate path of travel information may alternatively be implementedusing other devices and systems. Example location-based technologiesinclude the Ekahau Positioning Engine by Ekahau, Inc. of Saratoga,Calif., United States of America, an ultrawideband positioning system byUbisense, Ltd. of Cambridge, United Kingdom or any of the ultrawidebandpositioning systems provided by Multispectral Solutions, Inc. ofGermantown, Md., United States of America. Ultrawideband positioningsystems, depending on the design, offer advantages including longbattery life due to low power consumption and high precision. Further,such systems tend to use less of the available signal spectrum.

The Ekahau Positioning Engine may be configured to work with a pluralityof standard wireless communication protocol base stations (e.g., the802.11 protocol, the Bluetooth® protocol, etc.) to broadcastlocation-related information. By implementing the tag 110 using asuitable wireless communication protocol device and communicativelycoupling the location detection devices 106 a-c to the tag 110 using thesame communication protocol, the Ekahau Positioning Engine may be usedto generate location information. In particular, location-relatedinformation may be transmitted from the location detection devices 106a-c, received by the tag 110, and used to generate location informationusing Ekahau Positioning software offered by Ekahau, Inc.

The Ubisense ultrawideband system may be used by providing anultrawideband receiver to each of the location detection devices 106 a-cand providing the tag 110 with an ultrawideband transmitter. In thismanner, the tag 110 can transmit ultrawideband signals or chirps (e.g.,tag identifier information) that are received by the location detectiondevices 106 a-c. In this manner, the location detection devices 106 a-ccan measure times of arrival of the received ultrawideband signals andcompute the locations of the tag 110 based on these times.

FIGS. 7-9 are block diagrams of example apparatus that can be used toimplement the example methods and systems described herein. Inparticular, FIG. 7 is a block diagram of the example tag 110 of FIG. 1that can be worn or carried by a shopper or mounted on a shopping cartor basket to generate path of travel information as the shopper movesthrough the retail establishment 100 of FIG. 1. FIG. 8 is a blockdiagram of a data collector and processor 114 that can be used tocollect, process, and analyze measured path of travel information andperson detection event information associated with shoppers in theretail establishment 100. FIG. 9 is a block diagram of the exampleshopper path of travel inference apparatus 312 of FIG. 3 that can beused to analyze measured shopper path of travel information to generateadjusted path of travel information.

In the illustrated example of FIG. 7, the example tag 110 includes aprocessor 702, a memory 704, one or more timing devices 706, an opticalsensor 708, an emitter 710, and a communication interface 712. In theillustrated example of FIG. 8, the example data collector and processor114 includes a processor 802, a memory 804, a location interface 806,one or more timing devices 808, the path of travel information store 308(also shown in FIG. 3), the shopper event information store 310 (alsoshown in FIG. 3), and a remote transceiver 812. In the illustratedexample of FIG. 9, the example shopper path of travel inferenceapparatus 312 includes a data interface 902, a path segment analyzer904, a comparator 906, and a location data modifier 908. Each of theexample tag 110, the example data collector and processor 114, and theexample shopper path of travel inference apparatus 312 may beimplemented using any desired combination of hardware, firmware, and/orsoftware. For example, one or more integrated circuits, discretesemiconductor components, and/or passive electronic components may beused. Thus, for example, any of the processor 702, the memory 704, thetiming device(s) 706, the optical sensor 708, the emitter 710, thecommunication interface 712, the processor 802, the memory 804, thelocation interface 806, the timing device(s) 808, the path of travelinformation store 308, the shopper event information store 310, theremote transceiver 812, the data interface 902, the path segmentanalyzer 904, the comparator 906, and/or the location data modifier 908,or parts thereof, could be implemented using one or more circuit(s),programmable processor(s), application specific integrated circuit(s)(ASIC(s)), programmable logic device(s) (PLD(s)), field programmablelogic device(s) (FPLD(s)), etc.

Some or all of the processor 702, the memory 704, the timing device(s)706, the optical sensor 708, the emitter 710, the communicationinterface 712, the processor 802, the memory 804, the location interface806, the timing device(s) 808, the path of travel information store 308,the shopper event information store 310, the remote transceiver 812, thedata interface 902, the path segment analyzer 904, the comparator 906,and/or the location data modifier 908, or parts thereof, may beimplemented using instructions, code, and/or other software and/orfirmware, etc. stored on a machine accessible medium and executable by,for example, a processor system (e.g., the example processor system 1510of FIG. 15). When any of the appended claims are read to cover a purelysoftware implementation, at least one of the processor 702, the memory704, the timing device(s) 706, the optical sensor 708, the emitter 710,the communication interface 712, the processor 802, the memory 804, thelocation interface 806, the timing device(s) 808, the path of travelinformation store 308, the shopper event information store 310, theremote transceiver 812, the data interface 902, the path segmentanalyzer 904, the comparator 906, and/or the location data modifier 908is hereby expressly defined to include a tangible medium such as amemory, DVD, CD, etc.

Turning in detail to FIG. 7, the processor 702 of the tag 110 may beimplemented using any processor or controller suitable for controllingthe tag 110 and managing or processing data related to detecting thelocation of the tag 110 in the example retail establishment 100 (or anyother monitored environment). For example, the processor 702 may beimplemented using a controller, a general purpose processor, a digitalsignal processor, or any combination thereof. The processor 702 may beconfigured to perform and control various operations and features of thetag 110 such as, for example, setting the tag 110 in different operatingmodes, controlling a chirp emission interval duration, managingcommunication operations, etc.

The tag 110 is provided with the memory 704 to store software/firmwareinstructions for controlling the operations of the tag 110. In addition,the memory 704 can be used to store profile information identifying thetag 110 and can also store any data collected by the tag 110. The memory704 may be implemented using any suitable volatile and/or non-volatilememory including a random access memory (RAM), a read-only memory (ROM),a flash memory device, a hard drive, an optical storage medium, etc. Inaddition, the memory 704 may be any removable or non-removable storagemedium.

The tag 110 is provided with the one or more timing devices 706 togenerate timestamps or to implement any timing operations. The one ormore timing devices 706 may be implemented using a clock (e.g., areal-time clock), a timer, a counter, or any combination thereof.Although the timing device(s) 706 is shown as separate from theprocessor 702, in some example implementations the timing device(s) 706may be integrated with the processor 702.

The tag 110 is provided with the emitter 710 to emit chirps. The emitter710 may be implemented using a radio frequency (RF) or acoustictransmitter to emit RF or acoustic chirps detectable by the locationdetection devices 106 a-c located throughout the retail establishment100 of FIG. 1. In this manner, the tag 110 can provide signals to updateits location as a shopper moves through the retail establishment 100.The chirps may be encoded with a tag ID identifying the tag 1101. Insome example implementations, the chirps may also be encoded withtimestamps generated using the timing device(s) 706 and indicative ofwhen the tag 110 emitted the chirps.

The tag 110 is provided with the communication interface 712 tocommunicate information between the tag 110 and other processor systemsincluding, for example, the location detection devices 106 a-c and/orthe data collector and processor 114 of FIG. 1. The communicationinterface 712 may be implemented using any type of suitable wired orwireless transmitter, receiver, or transceiver including a Bluetoothtransceiver, an 802.11 transceiver, a cellular communicationstransceiver, an optical communications transceiver, etc.

The tag 110 is provided with the optical sensor 708 to monitor thesurrounding areas through which a shopper moves to determine theshopper's proximity to aisle entrances/exits by detecting light emittedby the people detectors 108 a-h of FIG. 1. For example, in some exampleimplementations, the tag 110 may be configured to emit chirps at afaster rate or interval whenever the shopper is entering or exiting anaisle (e.g., one of the aisles A-C of FIG. 1) so that highertime-resolution positioning or location information can be collected forthe tag 110. In this manner, collecting location points that are closerin time increases the probability of finding a match between a timestampof a location datum collected using the location detection devices 106a-c and a timestamp of a shopper detection event generated by a peopledetector (e.g., one of the people detectors 108 a-h) when determiningwhether a shopper entered or exited a particular aisle or zone. In theillustrated example, the optical sensor 708 may be, for example, a lightsensitive diode, an infrared (IR) sensor, a complimentary metal oxidesemiconductor (CMOS) sensor array, a charge-coupled diode (CCD) sensorarray, etc.

Turning in detail to FIG. 8, the data collector and processor 114 isprovided with the processor 802 to control and perform variousoperations or features of the data collector and processor 114 and maybe implemented using any suitable processor, including any controller,general purpose processor, digital signal processor, or any combinationthereof. For example, the processor 802 may be configured to receivelocation information from the location detection devices 106 a-c andshopper detection event information from the people detectors 108 a-h.

The processor 802 may also be configured to control communicationprocesses that occur between the data collector and processor 114 andother systems or devices (e.g., the tag 110, the location detectiondevices 106 a-c, the people detectors 108 a-h, and/or a server at aremotely located data collection facility). In some exampleimplementations, the processor 802 may control the chirp emission rateor intervals of the tag 110 by communicating control commands ortriggers to the tag 110 whenever it detects that the tag 110 is locatedproximate an aisle entrance/exit of an aisle or zone. In this manner,higher time-resolution location points for the tag 110 can be collectedand used as discussed above in connection with the optical sensor 708.

The data collector and processor 114 is provided with the memory 804 tostore software/firmware instructions to control the operations of thedata collector and processor 114. The data collector and processor 114is provided with the location interface 806 to determine locations oftags (e.g., the tag 110) as the tags are moved through a monitored area(e.g., the retail establishment 100 of FIG. 1). For example, when thetag 110 emits a chirp detected by one or more of the location detectiondevices 106 a-c, information indicative of the detected chip can becommunicated to the data collector and processor 114 by the one or moreof the location detection devices 106 a-c. The location interface 806can then determine the location of the tag 110 within the retailestablishment 100 based on signal characteristics of the detected chirpand/or information embedded in the detected chirp using any knowntechnique including techniques associated with the location detectionsystems (e.g., the Ekahau Positioning Engine or an ultrawidebandpositioning system) discussed above or any other location detectionsystem. In the illustrated example, the location interface 806 can alsobe implemented to identify a shopping zone (e.g., one of the aisles A-Cof FIG. 1) in which the tag 110 is located based on the computedlocation information. For example, the location interface 806 can accessa data structure such as the zone boundary data structure 500 of FIG. 5to look up or retrieve a zone identifier based on the locationinformation. The processor 802 can store the location information and/orthe zone identifier in association with a timestamp and a correspondingtag ID in the path of travel information store 308.

The data collector and processor 114 is provided with the one or moretiming devices 808 to generate timestamps or to implement any timingoperations. The one or more timing devices 808 may be implemented usinga clock (e.g., a real-time clock), a timer, a counter, or anycombination thereof. Although the timing device(s) 808 is shown asseparate from the processor 802, in some example implementations thetiming device(s) 808 may be integrated with the processor 802.

In the illustrated example, the path of travel information store 308 andthe shopper event information store 310 can be implemented usingdatabases or any other type of data structure and can be stored in thememory 804 or in a separate memory. The processor 802 can store receivedlocation information in the path of travel information store 308 andshopper detection event information in the shopper event informationstore 310. In some example implementations, the processor 802 mayprocess the information to generate the adjusted shopper path of travel202 of FIG. 2. In some example implementations, the processor 802 cancause the remote transceiver 812 to communicate the measured shopperpath of travel information and adjusted shopper path of travelinformation to a data collection facility. In other exampleimplementations, the processor 802 may be configured not to process themeasured shopper path of travel information but instead to communicatethe measured shopper path of travel information to another system (e.g.,a server at a data collection facility) that is configured to processthe measured shopper path of travel information to generate the adjustedshopper path of travel 202.

In the illustrated example, the remote transceiver 812 may becommunicatively coupled to a network 814 and may be implemented usingany suitable wired or wireless communication transceiver including, forexample, a telephone modem, a DSL modem, a cable modem, a cellularcommunication circuit, an Ethernet communication circuit, an 802.11communication circuit, etc.

Now turning in detail to FIG. 9, the example shopper path of travelinference apparatus 312 may be implemented in connection with the datacollector and processor 114 or may be implemented as a separateapparatus to analyze the measured shopper path of travel 104 (FIGS. 1and 2) to generate the adjusted shopper path of travel 202 (FIG. 2). Inthe illustrated example, the example shopper path of travel inferenceapparatus 312 is provided with the data interface 902 to retrieveinformation from memory and store information in memory. For example,the data interface 902 may be configured to retrieve measured shopperpath of travel information and shopper detection event information from,for example, the path of travel information store 308 and the shopperevent information store 310, respectively, of FIG. 8. In addition, thedata interface 902 may be configured to store processed shopper path oftravel information in the path of travel information store 308.

The example shopper path of travel inference apparatus 312 is providedwith the path segment analyzer 904 to analyze portions of measuredshopper paths of travel. For example, the path segment analyzer 904 maybe configured to analyze collected location points (e.g., locationpoints collected at the times t0-t8 of FIGS. 1 and 2) to determinewhether any collected location datum requires adjusting to moreaccurately represent a shopper's actual location.

The example shopper path of travel inference apparatus 312 is providedwith the comparator 906 to compare time stamps associated with collectedlocation data with time stamps associated with person detection events.In this manner, the shopper path of travel inference apparatus 312 candetermine whether a shopper was located in a particular aisle or zone bydetermining when the shopper passed by or was proximately located to apeople detector (e.g., one of the people detectors 108 a-h of FIG. 1) atan entrance/exit of that aisle or zone.

The example shopper path of travel inference apparatus 312 is providedwith the location data modifier 908 to adjust or change location data torepresent different location points. For example, when the path segmentanalyzer 904 determines that a particular location datum is inaccurateand does not represent (within some acceptable error) the actuallocation of a shopper, the location data modifier 908 can adjust orchange the location datum to more accurately represent the actuallocation of the shopper.

Flow diagrams depicted in FIGS. 10-14 are representative of machinereadable and executable instructions or processes that can be executedto implement the example tag 110 of FIGS. 1 and 7, the example datacollector and processor 114 of FIGS. 1 and 8, and the example shopperpath of travel inference apparatus 312 of FIGS. 3 and 9. The exampleprocesses of FIGS. 10-14 may be performed using a processor, acontroller and/or any other suitable processing device. For example, theexample processes of FIGS. 10-14 may be implemented using codedinstructions stored on a tangible medium such as a flash memory, aread-only memory (ROM) and/or random-access memory (RAM) associated witha processor (e.g., the processor 1512 of FIG. 15). Alternatively, someor all of the example processes of FIGS. 10-14 may be implemented usingany combination(s) of application specific integrated circuit(s)(ASIC(s)), programmable logic device(s) (PLD(s)), field programmablelogic device(s) (FPLD(s)), discrete logic, hardware, firmware, etc.Also, some or all of the example processes of FIGS. 10-14 may beimplemented manually or as any combination(s) of any of the foregoingtechniques, for example, any combination of firmware, software, discretelogic and/or hardware. Further, although the example processes of FIGS.10-14 are described with reference to the flow diagrams of FIGS. 10-14,other methods of implementing the processes of FIGS. 10-14 may beemployed. For example, the order of execution of the blocks may bechanged, and/or some of the blocks described may be changed, eliminated,sub-divided, or combined. Additionally, any or all of the exampleprocesses of FIGS. 10-14 may be performed sequentially and/or inparallel by, for example, separate processing threads, processors,devices, discrete logic, circuits, etc.

Turning to FIG. 10, the depicted flow diagram is representative of anexample process that may be performed to implement the example tag 110of FIGS. 1 and 7. The example process causes the example tag 110 to emitchirps to enable the data collector and processor 114 to determine thelocations of the tag 110. In the illustrated example, the exampleprocess causes the tag 110 to emit chirps based on a primary timertimeout or detecting proximity of the tag 110 to the people detectors108 a-h. For example, while the tag 110 is not near one of the peopledetectors 108 a-h, the tag 110 can emit chirps at relatively longintervals (i.e., low chirp rate) (e.g., 10 seconds), and when the tag110 is near one of the people detectors 108 a-h, the tag 110 can emitchirps at relatively shorter intervals (i.e., high chirp rate) (e.g., 1second) to increase the probability of finding timestamp matches betweena shopper detection event generated by one of the people detectors 108a-h and a location point collected using the location detection devices106 a-c based on the emitted chirps. In the illustrated example of FIG.10, the tag 110 can detect its proximity to any one of the peopledetectors 108 a-h based on detecting infrared signals emitted by thepeople detectors 108 a-h.

The example process of FIG. 10 begins with the processor 702 (FIG. 7)starting a primary timer and an infrared (IR) timer (block 1002). In theillustrated example, the primary timer and the IR timer are implementedusing the timing devices 706 of FIG. 7. The primary timer is used totrigger chirp emissions by the tag 110 at relatively long intervals(e.g., 10 seconds). The IR timer is used to trigger chirp emissions bythe tag 110 at relatively short intervals (e.g., 1 second) based on thetag 110 detecting proximity to the people detectors 108 a-h. The IRtimer is used to control the duration of the shortened chirp intervalwhen the tag 110 is proximate any of the people detectors 108 a-h. Inthis manner, detection of an IR signal from the people detectors 108 a-halone does not trigger the tag 110 to emit a chirp that would lead to anexcessively high chirp rate. Thus, using the IR timer, the tag 110 isoperated to emit chirps at the relatively shorter intervals only whenthe optical sensor 708 detects an IR signal in combination with a timeout event of the IR timer.

The processor 702 determines whether the optical sensor 708 (FIG. 7) hasdetected an infrared signal (block 1004) (indicating proximity to anentrance or exit of a zone). If the optical sensor 708 has detected aninfrared signal (block 1004), the processor 702 determines whether theIR timer has timed out (block 1006). If the IR timer has not timed out(block 1006), control is passed back to block 1004. Otherwise, if the IRtimer has timed out (block 1006), the processor 702 restarts the IRtimer (block 1008) to continue the higher chirp rate. After theprocessor 702 restarts the IR timer (block 1008), the emitter 710 (FIG.7) emits a chirp (block 1010) and control is passed back to block 1004.

Returning to block 1004, when the processor 702 determines that theoptical sensor 708 has not detected an infrared signal (block 1004), theprocessor 702 determines whether the primary timer has timed out (block1012). If the primary timer has timed out (block 1012), the processor702 restarts the primary timer (block 1014). The emitter 710 then emitsa chirp (block 1010) and control is passed back to block 1004. Theexample process of FIG. 10 can stop if the tag 110 is turned off or theprocessor 702 receives a command or instruction to stop emitting chirps.

Turning now to FIG. 11, the depicted flow diagram is representative ofan example process that may be performed to implement the example datacollector and processor 114 of FIGS. 1 and 8. The example process causesthe example data collector and processor 114 to detect chirps andcollect location information indicative of locations of tags (e.g., thetag 110 of FIGS. 1 and 7) as shoppers move through a monitoredenvironment such as the retail establishment 100 of FIG. 1. Initially,the processor 802 (FIG. 8) determines whether it has received tag chirpinformation (block 1102). In the illustrated example, the processor 802receives tag chirp information via the remote transceiver 812 from thelocation detection devices 106 a-c. The tag chirp information can beprovided with information generated by the location detection devices106 a-c including, for example, a timestamp of chirp detection/emission,signal characteristics of the chirp (e.g., signal strength, angle ofdetection, frequency, etc.), data embedded in the chirps (e.g., tag ID,emission timestamp, etc.), etc.

If the processor 802 determines that it has not received tag chirpinformation (block 1102), it continues to monitor for tag chirpinformation at block 1102. When the processor 802 determines that it hasreceived tag chirp information (block 1102), the location interface 806(FIG. 8) determines the location of the tag 110 (block 1104) and storesthe tag location, tag ID, and a corresponding timestamp (block 1106) inthe path of travel information store 308. The processor 802 thendetermines whether to continue monitoring for chirp information (block1108). If the monitoring process remains enabled, the processor 802 cancontinue to monitor for chirp information by returning control to block1102. Otherwise, if the monitoring process is disabled or instructed tostop monitoring operations, the example process of FIG. 11 is ended.

Turning now to FIG. 12, the depicted flow diagrams are representative ofan example process that may be performed to implement the example tag110 of FIGS. 1 and 7 and the example data collector and processor 114 ofFIGS. 1 and 8. The example process includes a tag sub-process 1202 and abase sub-process 1204. The tag sub-process 1202 causes the example tag110 to emit chirps based on a primary timer or a feedback signal emittedby the data collector and processor 114 based on the base sub-process1204. The base sub-process 1204 controls how often the tag 110 emitschirps when the tag 110 is proximate to one of the people detectors 108a-h. For example, while the tag 110 is not near one of the peopledetectors 108 a-h, the tag 110 can emit chirps at relatively longintervals (e.g., 10 seconds) based on the primary timer, and when thedata collector and processor 114 determines that the tag 110 is near oneof the people detectors 108 a-h, the data collector and processor 114can instruct the tag 110 to emit chirps at relatively shorter intervals(e.g., 1 second). In this manner, there can be a relatively higherprobability of finding timestamp matches between a shopper detectionevent generated by one of the people detectors 108 a-h and a locationpoint collected using the location detection devices 106 a-c based onthe emitted chirps. In the illustrated example of FIG. 12, the datacollector and processor 114 can detect proximity of the tag 110 to anyone of the people detectors 108 a-h based comparing the locations of thetag 110 to the known, fixed locations of the people detectors 108 a-h.

Initially, in the tag sub-process 1202, the processor 702 (FIG. 7)determines whether it has received a feedback signal to emit a chirp(block 1206). In the illustrated example, the processor 702 receivesfeedback signals (e.g., triggers) from the data collector and processor114 via the communication interface 712 (FIG. 7) when the data collectorand processor 114 determines that the tag 110 is proximate to one of thepeople detectors 108 a-h. If the processor 702 determines that it hasnot received a feedback signal to emit a chirp (block 1206), theprocessor 702 determines whether a primary timer (e.g., one of thetiming devices 706 of FIG. 7) has timed out (block 1208). In theillustrated example, the primary timer is used to cause the tag 110 toemit chirps at relatively long intervals. If the timer has not timed out(block 1208), control returns to block 1206. Otherwise, the processor702 restarts the primary timer (block 1210). After the processor 702restarts the primary timer (block 1210) or if the processor 702determines that it has received a feedback signal (block 1206), theemitter 710 (FIG. 7) emits a chirp (block 1212) and control returns toblock 1206.

Turning to the base sub-process 1204, the location interface 806 (FIG.8) analyzes the location of the tag 110 (block 1214) based on, forexample, chirp information received by the data collector and processor114. If the location interface 806 determines that the tag 110 is withina threshold distance to one of the person detectors 108 a-h (block1216), the processor 802 (FIG. 8) determines whether a feedback timer(e.g., one of the timing devices 808 of FIG. 8) has timed out (block1218). The feedback timer is used to send feedback signals to the tag110 to trigger the tag 110 to emit chirps at relatively short intervals(e.g., 1 second) when the tag 110 is proximate to the people detectors108 a-h. The feedback timer is used to control the duration of theshortened chirp interval when the tag 110 is proximate to any of thepeople detectors 108 a-h. In this manner, detection of the proximity ofthe tag 110 to the people detectors 108 a-h alone does not cause the tag110 to emit a chirp that would lead to an excessively high chirp rate.Thus, using the feedback timer in the data collector and processor 114,the tag 110 is operated to emit chirps at the relatively shorterintervals only when the location interface 806 detects proximity of thetag 110 to the people detectors 108 a-h in combination with a time outevent of the feedback timer.

If the feedback timer has timed out (block 1218), the processor 802restarts the feedback timer (block 1220) and communicates a feedbacksignal to the tag 110 (block 1222) via the remote transceiver 812 (FIG.8). After the processor 802 communicates the feedback signal (block1222) or if the feedback timer has not timed out (block 1218) or if thelocation of the tag 110 is not within a threshold distance to one of thepeople detectors 108 a-h, control returns to block 1214. The exampleprocess of FIG. 12 can end whenever the process is disabled orinstructed not to continue executing.

Although the example processes of FIGS. 10 and 12 are shown as enablingthe tag 110 to emit chirps (or signals) at two different rates based onwhether the tag 110 is proximately located or distantly located fromentrances/exits of zones, in other example implementations, the tag 110may be implemented to emit chirps (or signals) at only one chirp rate(or signal emission rate). For example, the tag 110 may be configured toemit chirps only at the relatively long interval or only at therelatively short interval. In other example implementations, the tag 110may be configured to emit chirps or signals at more than two emissionrates. In addition, while the example processes of FIGS. 10 and 12 aredescribed as enabling the tag 110 to emit chirps or signals at a firstrate when it is not proximate or relatively close to one of the peopledetectors 108 a-h and at a second rate when it is proximate orrelatively close to one of the people detectors 108 a-h, in otherexample implementations, the chirp rate or signal emission rate of thetag 110 may be incrementally increased as the distance between the tag110 and any one of the people detectors 108 a-h decreases and graduallydecreased as the tag 110 is moved away from any one of the peopledetectors 108 a-h.

Now turning to FIG. 13, the depicted flow diagram is representative ofan example process that may be performed to implement the exampleshopper path of travel inference apparatus 312 of FIGS. 3 and 9 togenerate the processed path of travel information representative of, forexample, the processed shopper path of travel 202 of FIG. 2 based onmeasured path of travel information representative of, for example, themeasured shopper path of travel 104 of FIGS. 1 and 2. In the illustratedexample, measured path of travel information and processed path oftravel information can be accessed (e.g., retrieved and stored) in adata structure similar or identical to the travel path data structure400 of FIG. 4.

Initially, the data interface 902 (FIG. 9) retrieves measured path oftravel information (block 1302) from, for example, the path of travelinformation store 308 (FIGS. 3 and 8). For example, the data interface902 can retrieve measured path of travel information representative ofthe measured path of travel 104 of FIGS. 1 and 2. The data interface 902then retrieves a first location datum from the measured path of travelinformation (block 1304), and the path segment analyzer 904 (FIG. 9)determines whether the retrieved location datum is indicative of asuspect movement (block 1306). For example, the path segment analyzer904 may detect a suspect movement if the location datum indicates abrief or erratic deviation between zones such as a previously collectedlocation datum being indicative of a first zone (e.g., the locationdatum collected at time t4 indicative of aisle B as shown in FIG. 1),the current location datum being indicative of a second zone (e.g., thelocation datum collected at time t5 indicative of aisle A as shown inFIG. 1), and a subsequently collected location datum being back in thefirst zone (e.g., the location datum collected at time t6 indicative ofaisle B as shown in FIG. 1).

If a suspect movement is detected (block 1306), the data interface 902retrieves a previous location datum that is temporally nearest to azone-entrance person detection event (block 1308). A zone-entranceperson detection event is a person detection event generated by one ofthe people detectors 108 a-h indicative of a direction of travel thatcorresponds to a person entering a zone (e.g., one of the aisles A-C ofFIG. 1). To retrieve a previous location datum that is temporallynearest to a zone-entrance person detection event, the data interface902 can operate in combination with the comparator 906 (FIG. 9) to finda location datum (e.g., the location point collected at time t4 noted onthe measured path of travel 104 of FIG. 1) in the retrieved measuredpath of travel information having a timestamp that substantially matchesor is equal to a timestamp of a zone-entrance person detection eventstored in the shopper event information store 310 (FIGS. 3 and 8). Insome instances, due to inaccuracies that may occur in the generatedlocation data, the location indicated by the previous location datum maybe in one zone (e.g., aisle B of FIG. 1), while a temporally matchingzone-entrance person detection event may have been generated by one ofthe people detectors 108 a-h in a different zone (e.g., aisle A or aisleC of FIG. 1). Thus, the data interface 902 and the comparator 906 can beconfigured to compare timestamps of location data with timestamps ofzone-entrance person detection events generated in neighboring zonesthat are within a threshold distance (e.g., an error radius) from thelocation indicated by the previous location data.

The path segment analyzer 904 identifies a zone (e.g., one of the aislesA-C of FIG. 1) based on the zone-entrance person detection event (block1310). That is, the data interface 902 determines which one of thepeople detectors 108 a-h generated the zone-entrance person detectionevent and identifies the zone in which that one of the people detectors108 a-h is located. The location data modifier 908 (FIG. 9) thenmodifies the inaccurate location datum (block 1312) retrieved at block1304 to represent a location in the zone identified at block 1310. Thedata interface 902 can store the modified location datum in, forexample, the adjusted path of travel column 408 of FIG. 4.

After the location datum is modified (block 1312) or if the path segmentanalyzer 904 determines that the location datum does not indicate asuspect movement (block 1306), the shopper path of travel inferenceapparatus 312 determines whether to search for another suspect movement(block 1314). If the shopper path of travel inference apparatus 312determines that it should search for another suspect movement (block1314), the data interface 902 retrieves a next location datum from theretrieved measured path of travel information (block 1316) and controlreturns to block 1306. Otherwise, if the shopper path of travelinference apparatus 312 determines that it should not search for anothersuspect movement (block 1314), the example process of FIG. 13 is ended.

Now turning to FIG. 14, the depicted flow diagram is representative ofanother example process that may be performed to implement the exampleshopper path of travel inference apparatus 312 of FIGS. 3 and 9 togenerate the processed path of travel information representative of, forexample, the processed shopper path of travel 202 of FIG. 2 based onmeasured path of travel information representative of, for example, themeasured shopper path of travel 104 of FIGS. 1 and 2. In the illustratedexample, measured path of travel information and processed path oftravel information can be accessed (e.g., retrieved and stored) in adata structure similar or identical to the travel path data structure400 of FIG. 4.

Initially, the data interface 902 (FIG. 9) retrieves measured path oftravel information (block 1402) from, for example, the path of travelinformation store 308 (FIGS. 3 and 8). For example, the data interface902 can retrieve measured path of travel information representative ofthe measured path of travel 104 of FIGS. 1 and 2. If the path segmentanalyzer 904 (FIG. 9) detects a suspect movement (excursion ordeviation) (block 1404) (e.g., a deviation from a first zone to a secondzone and back to the first zone as shown by way of example in FIG. 1 attimes t4-t6), the data interface 902 retrieves a location datum (or alocation point) from the retrieved measured path of travel informationthat is temporally nearest to a person detection event of a zone that isassociated with the suspect movement and is within a threshold distanceof the location datum (block 1406). For example, the data interface 902can operate in combination with the comparator 906 to find a locationdatum (e.g., the location point collected at time t4 noted on themeasured path of travel 104 of FIG. 1) in the retrieved measured path oftravel information having a timestamp that substantially matches or isequal to a timestamp of a person detection event stored in the shopperevent information store 310 (FIGS. 3 and 8). In some instances, due toinaccuracies that may occur in the generated location data, the locationindicated by the location datum may be in one zone (e.g., aisle B ofFIG. 1), while a temporally matching person detection event may havebeen generated by one of the people detectors 108 a-h in a differentzone (e.g., aisle A or aisle C of FIG. 1). Thus, the data interface 902and the comparator 906 can be configured to compare timestamps oflocation datum with timestamps of person detection events generated inneighboring zones that are within a threshold distance (e.g., an errorradius) from the location indicated by the location datum. When there isa mismatch in zones between a person detection event and a correspondinglocation datum, the location datum can be adjusted to represent alocation within the zone associated with the person detection event asdiscussed below in connection with blocks 1412 and 1414.

After the data interface 902 has retrieved a location datum at block1406, the path segment analyzer 904 identifies a zone (e.g., one of theaisles A-C of FIG. 1) based on the person detection event (block 1408).That is, the data interface 902 determines which one of the peopledetectors 108 a-h generated the person detection event and identifiesthe zone in which that one of the people detectors 108 a-h is located.The data interface 902 retrieves a subsequent location datum that istemporally nearest to a subsequent person detection event associatedwith the identified zone (block 1410). For example, referring to FIG. 1,the data interface 902 can retrieve the location point collected at timet8 noted on the measured path of travel 104. In the illustrated example,the person detection event identified at block 1406 represents a shopperentry into the identified zone, while the person detection eventidentified at block 1410 represents the shopper exiting the identifiedzone. In some example implementations, the entry and exiting of ashopper to/from an identified zone can be confirmed using direction oftravel information generated by the people detectors 108 a-h and storedin association with the person detection events in the shopper eventinformation store 310.

The path segment analyzer 904 determines whether any location entries ofthe measured path of travel information that were temporally collectedbetween the retrieved location points indicate a different zone (block1412) than the zone identified at block 1408. For example, referring tothe measured path of travel 104, the path segment analyzer 904 candetermine whether the any of the location points collected at timest5-t6 indicate a zone other than aisle B. The illustrated example ofFIG. 1 shows that the location point collected at t5 indicates aisle A,the location point collected at t6 indicates aisle B, and the locationpoint collected at t7 indicates aisle C. Thus, at block 1412, the pathsegment analyzer 904 flags the location points associated with times t5and t7 as inaccurate.

If the path segment analyzer 904 determines that any location entryindicates a different zone than the zone identified at block 1408 (block1412), the location data modifier 908 (FIG. 9) modifies the inaccuratelocation entries to represent locations within the same zone as the zoneidentified at block 1408 (block 1414). The data interface 902 can storethe modified location datum in, for example, the adjusted path of travelcolumn 408 of FIG. 4. After the location entries are modified (block1414) or if the path segment analyzer 904 determines that none of thelocation entries indicates a different zone than the zone identified atblock 1408 (block 1412), the shopper path of travel inference apparatus312 determines whether another segment of the retrieved measured path oftravel information should be analyzed (block 1416). If there is anotherpath segment to be analyzed (block 1416), the data interface 902retrieves another location datum (or a location point) from theretrieved measured path of travel information that is temporally nearestto a person detection event of another zone within a threshold distanceof the location datum (block 1418) and control returns to block 1408.Otherwise, if there is not another path segment to be analyzed (block1416), the example process of FIG. 14 is ended.

FIG. 15 is a block diagram of an example processor system 1510 that maybe used to implement the example apparatus, methods, and articles ofmanufacture described herein. For example, processor systemssubstantially similar or identical to the example processor system 1510may be used to implement the processor 702, the memory 704, the timingdevice(s) 706, the optical sensor 708, the emitter 710, thecommunication interface 712, the processor 802, the memory 804, thelocation interface 806, the timing device(s) 808, the path of travelinformation store 308, the shopper event information store 310, theremote transceiver 812, the data interface 902, the path segmentanalyzer 904, the comparator 906, and/or the location data modifier 908of the example tag 110 of FIGS. 1 and 7, the example data collector andprocessor 114 of FIGS. 1 and 8, and the example shopper path of travelinference apparatus 312 of FIGS. 3 and 9.

As shown in FIG. 15, the processor system 1510 includes a processor 1512that is coupled to an interconnection bus 1514. The processor 1512 maybe any suitable processor, processing unit, or microprocessor. Althoughnot shown in FIG. 15, the system 1510 may be a multi-processor systemand, thus, may include one or more additional processors that areidentical or similar to the processor 1512 and that are communicativelycoupled to the interconnection bus 1514.

The processor 1512 of FIG. 15 is coupled to a chipset 1518, whichincludes a memory controller 1520 and an input/output (I/O) controller1522. A chipset provides I/O and memory management functions as well asa plurality of general purpose and/or special purpose registers, timers,etc. that are accessible or used by one or more processors coupled tothe chipset 1518. The memory controller 1520 performs functions thatenable the processor 1512 (or processors if there are multipleprocessors) to access a system memory 1524 and a mass storage memory1525.

In general, the system memory 1524 may include any desired type ofvolatile and/or non-volatile memory such as, for example, static randomaccess memory (SRAM), dynamic random access memory (DRAM), flash memory,read-only memory (ROM), etc. The mass storage memory 1525 may includeany desired type of mass storage device including hard disk drives,optical drives, tape storage devices, etc.

The I/O controller 1522 performs functions that enable the processor1512 to communicate with peripheral input/output (I/O) devices 1526 and1528 and a network interface 1530 via an I/O bus 1532. The I/O devices1526 and 1528 may be any desired type of I/O device such as, forexample, a keyboard, a video display or monitor, a mouse, etc. Thenetwork interface 1530 may be, for example, an Ethernet device, anasynchronous transfer mode (ATM) device, an 802.11 device, a digitalsubscriber line (DSL) modem, a cable modem, a cellular modem, etc. thatenables the processor system 1510 to communicate with another processorsystem.

While the memory controller 1520 and the I/O controller 1522 aredepicted in FIG. 15 as separate functional blocks within the chipset1518, the functions performed by these blocks may be integrated within asingle semiconductor circuit or may be implemented using two or moreseparate integrated circuits.

Although certain methods, apparatus, and articles of manufacture havebeen described herein, the scope of coverage of this patent is notlimited thereto. To the contrary, this patent covers all methods,apparatus, and articles of manufacture fairly falling within the scopeof the appended claims either literally or under the doctrine ofequivalents.

1. (canceled)
 2. (canceled)
 3. (canceled)
 4. (canceled)
 5. (canceled) 6.(canceled)
 7. (canceled)
 8. An apparatus, comprising: a data interfaceto: receive location information indicative of a measured path of travelof a person through a monitored environment; receive person detectionevent information associated with a plurality of zones in the monitoredenvironment, wherein the person detection event information isindicative of detections of the person in each of the zones; and a pathsegment analyzer to determine an adjusted path of travel of the personthrough the monitored environment based on the location informationindicative of the measured path of travel and the person detection eventinformation.
 9. An apparatus as defined in claim 8, wherein an actualpath of travel of the person through the monitored environment isrelatively more similar to the adjusted path of travel than to themeasured path of travel.
 10. An apparatus as defined in claim 8, whereinthe path segment analyzer is to determine the adjusted path of travel bydetecting an erroneous deviation between two of the zones in themeasured path of travel, and wherein the apparatus further comprises alocation data modifier to adjust the location information to eliminatethe erroneous deviation.
 11. An apparatus as defined in claim 8, whereinthe path segment analyzer is to determine the adjusted path of travel byidentifying a path segment of the measured path of travel between afirst person detection event indicating that the person entered a firstone of the zones and a second person detection event indicating that theperson exited the first one of the zones, and wherein the apparatusfurther comprises a location data modifier to change a location datum inthe path segment indicating a deviation into a second one of the zones.12. An apparatus as defined in claim 11, wherein the path segmentanalyzer is further to: determine that the first person detection eventindicates that the person entered the first one of the zones based onfirst direction information stored in association with the first persondetection event; and determine that the second person detection eventindicates that the person exited the first one of the zones based onsecond direction information stored in association with the secondperson detection event.
 13. An apparatus as defined in claim 8, whereinthe person detection event information is indicative of at least oneperson detection event generated in response to the person moving withinproximity of a detector mounted at a predetermined entrance or apredetermined exit of one of the zones.
 14. An apparatus as defined inclaim 8, wherein the monitored environment is a retail establishment.15. (canceled)
 16. (canceled)
 17. (canceled)
 18. (canceled) 19.(canceled)
 20. (canceled)
 21. (canceled)
 22. (canceled)
 23. (canceled)24. (canceled)
 25. (canceled)
 26. (canceled)
 27. An apparatus,comprising: a comparator to compare a first timestamp associated with afirst location datum of a measured path of travel of a person through amonitored environment to a second timestamp associated with a persondetection event indicative that the person moved proximate to a detectorat a time indicated by the second timestamp; a data interface toidentify a zone of the monitored environment in which the detector islocated in response to determining that the first timestampsubstantially matches the second timestamp; and a location data modifierto change a second location datum of the measured path of travel torepresent a location in the identified zone.
 28. An apparatus as definedin claim 27, wherein the location data modifier is to change the secondlocation datum by generating an adjusted path of travel of the personthrough the monitored environment, and wherein an actual path of travelof the person through the monitored environment is relatively moresimilar to the adjusted path of travel than to the measured path oftravel.
 29. An apparatus as defined in claim 27, wherein the detector islocated at a predetermined entrance or a predetermined exit of theidentified zone.
 30. An apparatus as defined in claim 27, furthercomprising a path segment analyzer to determine that the persondetection event indicates that the person entered the identified zonebased on direction information generated in association with the persondetection event.
 31. An apparatus as defined in claim 27, wherein themonitored environment is a retail establishment.
 32. (canceled) 33.(canceled)
 34. (canceled)
 35. (canceled)
 36. (canceled)
 37. A system,comprising: a tag to emit signals at a first signal emission rate and asecond signal emission rate as the tag is moved through a monitoredenvironment, wherein the second signal emission rate is relativelyfaster than the first signal emission rate, and wherein the tag isconfigured to emit some of the signals at the second signal emissionrate when the tag is located proximate to an entrance or an exit of oneof a plurality of zones of the monitored environment; a data collectorto generate location information based on the signals to form a measuredpath of travel of the tag through the monitored environment, the datacollector further to collect person detection event informationindicative of the tag moving proximate to entrances and exits of theplurality of zones; and a location data modifier to generate an adjustedpath of travel based on the location information of the measured path oftravel and the person detection event information.
 38. A system asdefined in claim 37, further comprising a path segment analyzer todetect when the location information of the measured path of travel isindicative of a deviation between the plurality of zones, wherein thelocation data modifier is to generate the adjusted path of travel inresponse to the path segment analyzer detecting the deviation.
 39. Asystem as defined in claim 37, further comprising: a plurality ofreceivers located in the monitored environment to detect the signalsemitted by the tags and communicate signal information to the datacollector; and a plurality of people detectors located at the entrancesand the exits of the plurality of zones to detect when the tag movesproximate to the entrances and the exits of the plurality of zones. 40.A system as defined in claim 39, wherein each of the people detectorsincludes a light transmitter and a light receiver, and wherein each ofthe people detectors detects when the tag moves proximate to arespective one of the entrances or a respective one of the exits when alight beam emitted between the light transmitter and the light receiveris interrupted by a person.
 41. A system as defined in claim 37, whereinthe monitored environment is a retail establishment. 42-46. (canceled)